/*
 * Alumno.h
 *
 *  Created on: 18/10/2009
 *      Author: ngonzalez
 */

#ifndef ALUMNO_H_
#define ALUMNO_H_
#include <string>
#include "../Externa/Dato.h"
#include "iostream"
#include "../Externa/Clave.h"
#include <list>
using namespace std;


/**
 * Clase desarrollada unicamente con el propósito de probar las funcionalidades ofrecidas por el toolkit.
 * Esta clase es totalmente ajena al core que ofrece dicho toolkit
 * Dicha clase, al heredar de la clase Dato, se ve obligada a implementar los metodos de serialización.
 */
class Alumno : public Dato {

	public:Alumno();

	public: virtual ~Alumno();

	private: string nombre;

	private: string apellido;

	private: string dni;

	private: string padron;

	private: friend class Clave;


	public: void AsignarCampos(list<string>* campos);


	/*------------------Getter & Setters---------------------------*/
	public: string getApellido() const;

	public: string getDni() const;

	public: string getNombre() const;

	public: string getPadron() const;

	public: void setApellido(string apellido);

	public: void setDni(string  dni);

	public: void setNombre(string nombre);

	public: void setPadron(string padron);

	// recibe en campo el nombre y retorna el valor del campo en un string
	public: string getValorCampo(string campo);
	/*---------------------------------------------------------------------------*/

	public: virtual string serializar();
	public: virtual void desSerializar(string alumno);

};

#endif /* ALUMNO_H_ */

